from pathlib import Path
from openai import OpenAI

def chat(iat):
    client = OpenAI(
        api_key="sk-3TvsUcmT8xSNXu9QLgWm3FTA4i8nNIKgPuPCB6flk5d1PGl4",
        base_url="https://api.openai-proxy.org/v1/",
    )
    f = open("res.txt", "r")
    file_content = f.read()
    f.close()


    # 把它放进请求中
    messages = [
        {"role": "user", "content": """
                你是一个逆向工程师，
                现在公司收到了一个样本，
                以下内容是分析的反汇编代码：\r\n"""+file_content+"""""
                在这个txt文件中如果存在‘call dword ptr 地址’的情况 则有以下字典对应函数名称：\r\n
            """+iat+"""
            请详细描述在res.txt和这个字典两个文件中这个exe文件的主要实现的功能和大致的工作流程,
            主要分析依据以windowsapi为基准，如果在res.txt中没有出现windowsapi的调用则单独根据字典文件中分析
            如果遇到了windowsapi相关的函数则重点分析其中的参数值和具体的意义，并标注出其出现在文件中的地址
            输出的结果要求标准的markdown格式
            """},
    ]

    completion = client.chat.completions.create(
        model="gpt-4o-mini-2024-07-18",
        messages=messages,
        temperature=0.3,
    )
    return str(completion.choices[0].message.content)

def trage_chat():
    client = OpenAI(
        api_key="sk-3TvsUcmT8xSNXu9QLgWm3FTA4i8nNIKgPuPCB6flk5d1PGl4",
        base_url="https://api.openai-proxy.org/v1/",
    )
    f = open("trage.html", "r")
    trage_info = f.read()
    f.close()
    f = open("res.md", "r")
    pre_res = f.read()
    f.close()
    messages = [
        {"role": "user", "content": """
                    你是一个逆向工程师，
                    现在公司收到了一个样本，
                    以下内容是在某个威胁分析平台中的报告：\r\n""" + trage_info + """""
                请详细描述在这个html文件中这个exe文件的主要实现的功能和大致的工作流程,
                这是我之前分析的内容"""+pre_res+"""
                要求结合上面的内容做一个综合性的分析报告出来，
                输出的结果要求标准的markdown格式
                """},
    ]
    completion = client.chat.completions.create(
        model="gpt-4o-mini-2024-07-18",
        messages=messages,
        temperature=0.3,
    )
    return str(completion.choices[0].message.content)